PREFIX     = /usr/local
MIC        = mic
PERL       = perl
PERL_CORE  = $(strip $(shell $(PERL) -MExtUtils::Embed -e perl_inc | sed 's/[ \t]*-I//'))
CXXFLAGS  += $(CFLAGS) -fno-exceptions
CC = $(CXX)

CFLAGS    += -Wall -W -Werror
CFLAGS    += -g
CFLAGS    += -O2
CFLAGS    += -MP -MD
LOADLIBES = -lpthread -lz -L$(PERL_CORE) -lperl -lcrypt -lexpat 
LDFLAGS +=

### Use RPATH for storing the path to the perl lib

all: shared
shared: $(MIC)
static: $(MIC)

static: LDFLAGS += -static -Wl,-rpath,$(PERL_CORE)
static: LOADLIBES += -ldl

TRGMODULES  = \
	ConfFile.cpp     \
	CrSpace.cpp      \
	Image.cpp        \
	TImage.cpp       \
	IniFile.cpp      \
	MultiFile.cpp    \
	PerlClass.cpp    \
	Param.cpp        \
	ParamList.cpp    \
	Special.cpp      \
	compatibility.cpp\
	utils.cpp        \
	Expr.cpp         \
	MicExpr.cpp      \
	mic.cpp

TRGOBJS  = $(TRGMODULES:%.cpp=%.o)
TRGDEPS  = $(TRGMODULES:%.cpp=%.d)

#
# Build ID
#

BLD_VER=devel
CFLAGS += '-DBLD_VER_STR="$(BLD_VER)"' 
CFLAGS += '-DIBADM_VER_STR="$(IBADM_VER)"' 

-include $(TRGDEPS)

# This flag should be set for debug ONLY!!!
# CFLAGS += -DTAVOR_DEBUG

### Target rules
### ------------
clean:
	rm -fr $(TRGDEPS) $(TRGOBJS) $(MIC)

# Special compilation rules
PerlClass.o: CFLAGS += -Wno-unused -Wno-comment
PerlClass.o: CPPFLAGS += -I$(PERL_CORE)

$(MIC):	$(TRGOBJS)

install: bin
	install $(MIC) $(PREFIX)/bin/$(MIC)
	install t2a $(PREFIX)/bin/t2a

.DELETE_ON_ERROR:
.PHONY: all install clean release shared static
